<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>配置分析器 | Elasticsearch: 权威指南 | Elastic</title>
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
</head>
<body>
<div class="main-container">
    <section id="content">
        
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原文地址: <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/configuring-analyzers.html" rel="nofollow">https://www.elastic.co/guide/cn/elasticsearch/guide/current/configuring-analyzers.html</a>, 版权归 www.elastic.co 所有<br/>
                            英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/guide/current/configuring-analyzers.html" rel="nofollow">https://www.elastic.co/guide/en/elasticsearch/guide/current/configuring-analyzers.html</a>
                            </div>
                        <!-- start body -->
                  <div class="page_header">
<b>请注意:</b><br>本书基于 Elasticsearch 2.x 版本，有些内容可能已经过时。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch: 权威指南</a></span>
»
<span class="breadcrumb-link"><a href="getting-started.html">基础入门</a></span>
»
<span class="breadcrumb-link"><a href="index-management.html">索引管理</a></span>
»
<span class="breadcrumb-node">配置分析器</span>
</div>
<div class="navheader">
<span class="prev">
<a href="index-settings.html">« 索引设置</a>
</span>
<span class="next">
<a href="custom-analyzers.html">自定义分析器 »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="configuring-analyzers"></a>配置分析器<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elasticsearch-cn/elasticsearch-definitive-guide/edit/cn/070_Index_Mgmt/15_Configure_Analyzer.asciidoc">edit</a>
</h2>
</div></div></div>
<p>第三个重要的索引设置是 <code class="literal">analysis</code> 部分，用来配置已存在的分析器或针对你的索引创建新的自定义分析器。</p>
<p>在 <a class="xref" href="analysis-intro.html" title="分析与分析器">分析与分析器</a> ，我们介绍了一些内置的分析器，用于将全文字符串转换为适合搜索的倒排索引。</p>
<p><code class="literal">standard</code> 分析器是用于全文字段的默认分析器，对于大部分西方语系来说是一个不错的选择。

它包括了以下几点：</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<code class="literal">standard</code> 分词器，通过单词边界分割输入的文本。
</li>
<li class="listitem">
<code class="literal">standard</code> 语汇单元过滤器，目的是整理分词器触发的语汇单元（但是目前什么都没做）。
</li>
<li class="listitem">
<code class="literal">lowercase</code> 语汇单元过滤器，转换所有的语汇单元为小写。
</li>
<li class="listitem">
<code class="literal">stop</code> 语汇单元过滤器，删除停用词—​对搜索相关性影响不大的常用词，如 <code class="literal">a</code> ， <code class="literal">the</code> ， <code class="literal">and</code> ， <code class="literal">is</code> 。
</li>
</ul>
</div>
<p>默认情况下，停用词过滤器是被禁用的。如需启用它，你可以通过创建一个基于 <code class="literal">standard</code> 分析器的自定义分析器并设置 <code class="literal">stopwords</code> 参数。
 可以给分析器提供一个停用词列表，或者告知使用一个基于特定语言的预定义停用词列表。</p>
<p>在下面的例子中，我们创建了一个新的分析器，叫做 <code class="literal">es_std</code> ，
并使用预定义的西班牙语停用词列表：</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">PUT /spanish_docs
{
    "settings": {
        "analysis": {
            "analyzer": {
                "es_std": {
                    "type":      "standard",
                    "stopwords": "_spanish_"
                }
            }
        }
    }
}</pre>
</div>
<div class="sense_widget" data-snippet="snippets/070_Index_Mgmt/15_Configure_Analyzer.json"></div>
<p><code class="literal">es_std</code> 分析器不是全局的—​它仅仅存在于我们定义的 <code class="literal">spanish_docs</code> 索引中。
为了使用 <code class="literal">analyze</code> API来对它进行测试，我们必须使用特定的索引名：</p>
<div class="pre_wrapper lang-sense">
<pre class="programlisting prettyprint lang-sense">GET /spanish_docs/_analyze?analyzer=es_std
El veloz zorro marrón</pre>
</div>
<div class="sense_widget" data-snippet="snippets/070_Index_Mgmt/15_Configure_Analyzer.json"></div>
<p>简化的结果显示西班牙语停用词 <code class="literal">El</code> 已被正确的移除：</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
  "tokens" : [
    { "token" :    "veloz",   "position" : 2 },
    { "token" :    "zorro",   "position" : 3 },
    { "token" :    "marrón",  "position" : 4 }
  ]
}</pre>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="index-settings.html">« 索引设置</a>
</span>
<span class="next">
<a href="custom-analyzers.html">自定义分析器 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>